// ---------------------------------------------------------------------------
//Copyright (C) 2008-2011 Nokia Corporation and/or its subsidiary(-ies).
//All rights reserved.
//Contact: Nokia Corporation (qt-info@nokia.com)

//You may use the files in this folder under the terms of the BSD
//license as follows:

//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions are
//met:
//  * Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
//  * Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in
//    the documentation and/or other materials provided with the
//    distribution.
//  * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
//    the names of its contributors may be used to endorse or promote
//    products derived from this software without specific prior written
//    permission.

//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
//A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
//OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
//SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
//DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
//THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
//(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// ---------------------------------------------------------------------------

import QtQuick 1.0
import com.nokia.symbian 1.1
import com.nokia.extras 1.1
import "date.js" as CustDate
import "settings.js" as Settings

CommonDialog {
    id: root



    property alias fuelCost: txtCost.text
    property alias fuelQty: txtQty.text
    property alias fuelDate: selectionlistitemDate.title
    property string currency
    property real fuelRate;
    property real total;

    titleText: "Add Fuel Details"

    content: Column {
        spacing: 8
        anchors.left: parent.left; anchors.right: parent.right


        Label {
            id : boxLabel1
            text:  "Cost: ("+currency+")"
            color: platformStyle.colorNormalLight
            font.pixelSize: platformStyle.fontSizeMedium
        }
        TextField{
            id: txtCost
            placeholderText: "Fuel cost:"
            anchors{
                right: parent.right; left: parent.left
            }
            maximumLength: 7
            onTextChanged: {
                var temp = parseFloat(fuelCost);


                if(fuelRate != 0 && isNaN(temp) == false)
                {
                    total = temp / fuelRate;
                    if(isNaN(total) === false)
                        txtQty.text = total.toFixed(2);
                    else
                    {
                        alert.msg = "Please Enter valid cost/qty";

                        alert.open();
                    }
                }
            }

        }
        Label {
            id : boxLabel2
            text:  "Qty: (Liter)"
            color: platformStyle.colorNormalLight
            font.pixelSize: platformStyle.fontSizeMedium
        }
        TextField{
            id: txtQty
            placeholderText: "Fuel Qty:"
            anchors{
                right: parent.right; left: parent.left
            }
            maximumLength: 7
        }

        SelectionListItem {
            id: selectionlistitemDate
            x: 26
            y: 331
            implicitWidth: 300
            //title: "Today"
            Component.onCompleted: {
                var d = new Date();

               title =  CustDate.dateFormat(d, "mmm d, yyyy");


            }

            onClicked: {
                 var d = new Date();
                 tDialog.year = d.getFullYear();
                 tDialog.month = d.getMonth()+1;
                tDialog.day = d.getDate();


                 tDialog.open()
            }//dateDlg.open()
        }



        DatePickerDialog {
            id: tDialog
            titleText: "Set Date"
            acceptButtonText: "OK"


            onAccepted: {
                var strDt = tDialog.month+"/"+tDialog.day+"/"+tDialog.year;
                var d = new Date(strDt);
                selectionlistitemDate.title =  CustDate.dateFormat(d, "mmm d, yyyy");
            }


        }

    }

    onStatusChanged: {
        if(status == DialogStatus.Opening) {
            Settings.initialize();

            currency = Settings.getSetting("currency");
            if(currency === "0")
                currency = "USD";

            fuelRate = parseFloat(Settings.getSetting("rate"));
        }
    }


    buttons: ButtonRow {
        anchors { left: parent.left; right:  parent.right; margins: 16 }
        Button { x: 0; text: "Ok" ; onClicked: process() }
        Button { text: "Cancel"; onClicked: root.reject() }
    }
    AlertDialog
    {
        id:alert
        x: 0
        y: 0

    }

    function isNumber (o) {
      return ! isNaN (o-0);
    }
    function process()
    {
        if(isNumber(fuelCost) == true && isNumber(fuelQty) == true)
        {
            if(fuelCost != "" && fuelQty != "")
                root.accept()
            else
            {
                alert.msg = "Please Enter valid cost/qty";
                alert.open();

            }


        }
        else
        {
        alert.msg = "Please Enter valid cost/qty";
        alert.open();
        }
     //
    }
}
